#ifndef DOCKERMANAGER_H
#define DOCKERMANAGER_H

#include "dockerimage.h"
#include "dockerinspect.h"
#include "dockerps.h"
#include "dockersearch.h"

#include <QList>
#include <QObject>

class DockerManager : public QObject
{
    Q_OBJECT
public:
    explicit DockerManager(QObject *parent = nullptr);

    DockerImageList  images();
    DockerPsList     ps(bool all = false);
    DockerSearchList search(const QString &input);
    DockerInspect inspect(const QString &name);

    QList<QString> docker(QStringList arguments);
    QList<QJsonObject> docker2Json(QStringList arguments);
    QList<QJsonObject> docker2Json(QString arg1);
    QList<QJsonObject> docker2Json(QString arg1, QString arg2);
    QList<QJsonObject> docker2Json(QString arg1, QString arg2, QString arg3);

    QList<QJsonObject> RunDocker(QStringList arguments);


    DockerSearchList docker_search_result() const;

signals:

private:
    DockerSearchList m_docker_search_result;
};

#endif // DOCKERMANAGER_H
